var mesesCalendario = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
limpiarBasura.push(function(){
	$(".qtip").remove();
});

$(document).ready(function() {
	
	setTimeout(function(){
	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
	
	$('#calendario').fullCalendar({
		theme: true,
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
		editable: true,
		events: function(start, end, callback) {

	        // do some asynchronous ajax
			var mesDesde = start.getMonth()+1;
			var mesHasta = end.getMonth()+1;
	        $.getJSON("/consultasAjax.php?seccion=calendario",
	                {
	                        desde: start.getFullYear()+"-"+mesDesde+"-"+start.getDate(),
	                        hasta: end.getFullYear()+"-"+mesHasta+"-"+end.getDate()
	                },
	                function(data) {

	                        // format the result into an array of CalEvents
	                        // (not seen here)

	                        // then, pass the CalEvent array to the callback
	                	calevents = new Array();
	                	$.each(data, function(i,evento){
	                		
	                		//Fecha de inicio
	                		var fecha = evento.fecha.split(" ");
	                		var horaCompleta = fecha[1].split(":");
	                			fecha = fecha[0].split("-");
	                		var ano = fecha[0];
	                		var mes = fecha[1]-1;
	                		var dia = fecha[2];
	                		var hora = horaCompleta[0];
	                		var minuto = horaCompleta[1];
	                		var fechaInicio = new Date(ano, mes, dia, hora, minuto);
	                		//fin fecha inicio
	                		//fecha fin
	                		var fechaFin = null;
	                		if(evento.fecha_fin != null)
	                		{
	                			var fecha = evento.fecha_fin.split(" ");
		                		var horaCompleta = fecha[1].split(":");
		                			fecha = fecha[0].split("-");
		                		var ano = fecha[0];
		                		var mes = fecha[1]-1;
		                		var dia = fecha[2];
		                		var hora = horaCompleta[0];
		                		var minuto = horaCompleta[1];
		                		var fechaFin = new Date(ano, mes, dia, hora, minuto);
	                		}
	                		
	                		calevents.push({
	            				title: evento.nota,
	            				start: fechaInicio,
	            				end: fechaFin,
	                			eventId:evento.id_tarea,
	                			id:evento.id_tarea,
	                			url:evento.url,
	                			allDay:evento.dia_completo,
	                			type:evento.tipo,
	                			ano:evento.ano
	            			});
	                	});
	                        callback(calevents);

	                });

		},
		eventClick: function(calEvent, jsEvent, view)
		{
			$(".diagCal").remove();
			//Solo mostramos esto si es evento de calendario
			if(calEvent.url == null)
			{
				var dialogo = $('<div class="diagCal" title="Editar tarea">'+
						'<div>Nota: <input class="text ui-widget-content ui-corner-all ac_input" value="'+calEvent.title+'" type="text"></div>'+
						'<br><p><a href="javascript:void(0)" class="borrar dialog_link ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Borrar tarea</a></p>'+
						'</div>');
				dialogo.dialog({
					buttons: {
							"Cancelar": function() { $(this).dialog("close"); },
							"Aceptar": function() {
								//console.debug(calEvent);
								calEvent.title=dialogo.find(".text").val();
								$("#calendario").fullCalendar( 'updateEvent', calEvent );
								$.getJSON("/consultasAjax.php?seccion=calendario",{
									id_evento: calEvent.eventId,
									nota: dialogo.find(".text").val(),
									dia_completo: calEvent.allDay
								});
								$(this).dialog("close"); 
								}
							 },
					position: [jsEvent.clientX,jsEvent.clientY]
				});
				
				//Decorar los botones
				dialogo.find(".borrar").hover(
						function() { $(this).addClass('ui-state-hover'); }, 
						function() { $(this).removeClass('ui-state-hover'); }
				).click(function(){
					$('#calendario').fullCalendar( 'removeEvents', calEvent.id);
					dialogo.dialog('close');
					
					$.getJSON("/consultasAjax.php?seccion=calendario",{
						borrar: calEvent.eventId
					},function(data){
						if(data.error)
						{
							mensajeSistema("No se pudo borrar la tarea");
						}
					});
					

				});
			}

		},
		eventAfterRender: function(calEvent, element, view)
		{
			var contenido=$("<div>");
			if(calEvent.type == "cumple")
			{
				var edad = new Date().getFullYear()-calEvent.ano;
				contenido.text(calEvent.title +" cumple "+ edad +" años");
				
				$(element).qtip({
		               content: contenido,
		               position: {
		                  corner: {
		                     tooltip: "bottomRight",
		                     target: "topRight"
		                  }
		               },
		               show: 'mouseover',
		               //hide: { fixed: true, delay: 500 },
		               hide: 'mouseout',
		               style: {
		                  border: {
		                     width: 5,
		                     radius: 10
		                  },
		                  padding: 10, 
		                  textAlign: 'center',
		                  tip: true,
		                  name: 'cream'
		               }
		            });
			}
		},
		dayClick: function(dayDate, allDay, jsEvent, view)
		{
			$(".diagCal").remove();
			var dialogo = $('<div class="diagCal" title="Tarea para el dia '+dayDate.getDate()+' de '+mesesCalendario[dayDate.getMonth()]+'">'+
					'<div>Nota: <input class="text ui-widget-content ui-corner-all ac_input" id="notaCalendario" type="text"></div>'+
					//'<br><p><a href="javascript:void(0)" id="detalles" class="dialog_link ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Detalles</a></p>'+
					'</div>');
			dialogo.dialog({
				buttons: {
						"Cancelar": function() { $(this).dialog("close"); },
						"Aceptar": function() {
							
							var mes = dayDate.getMonth()+1;
							$.getJSON("/consultasAjax.php?seccion=calendario",{
								dia_completo: allDay,
								fecha: dayDate.getFullYear()+"-"+mes+"-"+dayDate.getDate()+" "+dayDate.getHours()+":"+dayDate.getMinutes()+":"+dayDate.getSeconds(),
								nota: $("#notaCalendario").val()
							},function(data){
								if(data.error)
								{
									mensajeSistema("No se pudo insertar la tarea");
								}else{
									$('#calendario').fullCalendar( 'renderEvent', {
										id : data.id,
										eventId : data.id,
								        title  : $("#notaCalendario").val(),
								        start  : dayDate
								    } );
								}
							});
							
							$(this).dialog("close"); 
						}
						 },
				position: [jsEvent.clientX,jsEvent.clientY]
			});
			
			//Decorar los botones
			/*$('#detalles').hover(
					function() { $(this).addClass('ui-state-hover'); }, 
					function() { $(this).removeClass('ui-state-hover'); }
			);
			
			
			$('#detalles').click(function(){
				jAlert('Apartado no disponible', 'Aviso'); 
			});*/
			
		},
		eventDrop: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view)
		{
			$.getJSON("/consultasAjax.php?seccion=calendario",{
				dias: dayDelta,
				minutos: minuteDelta,
				id_evento: calEvent.eventId,
				dia_completo: allDay,
				accion: "mover"
			},function(data){
			});
			
		},
		eventResize: function(calEvent, dayDelta, minuteDelta, revertFunc, jsEvent, ui, view)
		{

			$.getJSON("/consultasAjax.php?seccion=calendario",{
				dias: dayDelta,
				minutos: minuteDelta,
				id_evento: calEvent.eventId
			},function(data){
			});
		}

	});
	$("#calendario").fadeIn();
	},500);

	

});




